home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / bofra_detect.nasl < prev    next >
Text File  |  2005-03-31  |  2KB  |  76 lines

  1. #
  2. # Bofra virus detection
  3. #
  4. # Author: Brian Smith-Sweeney (brian@smithsweeney.com)
  5. # http://www.smithsweeney.com
  6. #
  7. # Created: 11/15/04
  8. # Last Updated: 11/15/04
  9. #
  10. # See the Nessus Scripts License for details
  11. #
  12.  
  13. if(description)
  14. {
  15.         script_id(15746);
  16.         script_version ("$Revision: 1.1 $");
  17.     script_bugtraq_id(11515);
  18.         name["english"] = "Bofra virus detection";
  19.         desc["english"] = "
  20. The remote host seems to have been infected with the Bofra virus or one of its 
  21. variants, which infects machines via an Internet Explorer IFRAME exploit.  
  22. It is very likely this system has been compromised.
  23.  
  24. Solution : re-install the remote system
  25. See also :  http://securityresponse.symantec.com/avcenter/venc/data/w32.bofra.c@mm.html
  26. Risk factor : Critical";
  27.  
  28.         summary["english"] = "Determines the presence of a Bofra virus infection resulting from an IFrame exploit";
  29.         family["english"] = "Backdoors";
  30.         script_name(english:name["english"]);
  31.         script_description(english:desc["english"]);
  32.         script_summary(english:summary["english"]);
  33.         script_category(ACT_GATHER_INFO);
  34.         script_copyright(english:"This script is Copyright (C) 2004 Brian Smith-Sweeney");
  35.         script_family(english:family["english"]);
  36.         exit(0);
  37. }
  38.  
  39. #
  40. # User-defined variables
  41. #
  42. # This is where we saw Bofra; YMMV
  43. port=1639;
  44.  
  45. #
  46. # End user-defined variables; you should not have to touch anything below this
  47. #
  48.  
  49. # Get the appropriate http functions
  50. include("http_func.inc");
  51. include("http_keepalive.inc");
  52.  
  53.  
  54. if ( ! get_port_state ( port ) ) exit(0);
  55.  
  56. # Prep & send the http get request, quit if you get no answer
  57. req = http_get(item:"/reactor",port:port);
  58. res = http_keepalive_send_recv(port:port, data:req);
  59. if ( res == NULL ) exit(0);
  60.  
  61. # Convert the response to Hex.  This is necessary, because the HTML returned
  62. # from this port is filled with unprintable ASCII characters, which screws up
  63. # the regexp matching.  Converting everything to a hex string gets around this
  64. #
  65. # The hex character string is "<IFRAME SRC=file://" in ASCII (yes, IFRAME has 
  66. # legit uses, but not with a local file, and not on a random high port)
  67. #
  68. hex_res=hexstr(res);
  69. if (egrep(pattern:"3c0049004600520041004d00450020005300520043003d00660069006c0065003a002f002f00", string:hex_res)) {    
  70.     security_hole(port);
  71. } else {
  72.     if (egrep(pattern:"<IFRAME SRC=file://",string:res)){
  73.         security_hole(port);
  74.     }
  75. }
  76.